const {MyPromise} = require('./01_根据同步实现Promise')


/**
 * 执行结果是
 * * 1 10
 * * Promise内部是同步执行的
 */
// new MyPromise((resolve, reject) => {
//   resolve(10)
//   console.log(1);
// }).then(res=>{console.log(res);}, reason => {console.log(reason);})

/**
 * setTimeout是异步的, 所以setTimeout执行了,但其回调会放入event loop中,
 * 又因为状态没有发生改变,所以then方法会执行但是没有结果
 * * 打印结果为 1 (then方法 pending) (这里是测试resolve传入的形参 10)
 * * 说明resolve方法会执行但是resolve方法已经慢于then方法执行.
 * * 所以在先调用then方法的前提下,因为状态依旧是pending的情况下,成功与失败的回调都不会触发
 */

 new MyPromise((resolve, reject) => {
  setTimeout(() => {
    resolve(10)
  })
  console.log(1);
}).then(res=>{console.log('second',res);}, reason => {console.log(reason);})



/**
 *  通过发布订阅方式
 */

